namespace BoxBinary.AspectCache.Core.Broadcast
{
    /// <summary>
    /// Reasons for a <see cref="BroadcastEvent"/> to be raised.
    /// </summary>
    public enum BroadcastEventReason
    {
        /// <summary>
        /// The cache entry was deleted
        /// </summary>
        ItemDeleted = 0,
        /// <summary>
        /// The cache entry was modified
        /// </summary>
        ItemUpdated = 1,
        /// <summary>
        /// The cache entry was created
        /// </summary>
        ItemCreated = 2,
        /// <summary>
        /// Signifies that the cache item was changed, but is not serializable, therefore the
        /// loader of the CacheBroadCastEvent should assume the Item is null and thus should
        /// just delete the local machine's cache item instead in order to repopulate itself
        /// manually on demand.
        /// </summary>
        ItemUpdatedNotBroadcastable = 3
    }
}